Dynamic contact list

ABSTRACT

In one embodiment, a system receives a user calling attribute and determines current information of a telephone. The system generates a dynamic contact list based on the user calling attribute and the current information.

TECHNICAL FIELD

The present disclosure relates generally to telephones and othertelecommunication devices.

BACKGROUND

In telephony and other areas, user devices frequently include a “contactlist”, which is a list of shortcuts or identifiers of other users tofacilitate an easy connection to the users. For example, telephonestypically include contact lists of potential called parties so that thecalling party at the telephone can choose one of the contacts toinitiate a telephone call to the corresponding called party withouthaving to memorize and dial the telephone number of the called party.Similarly, instant messaging system devices have contact lists or buddylists so that a user across a network can be contacted without having toknow the user's network address or other identifying information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a communication system in accordance withone embodiment.

FIG. 2 is a flow diagram of the functionality of the communicationsystem in accordance with one embodiment when generating a dynamiccontact list.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

One embodiment is a system that receives a user calling attribute anddetermines current information of a telephone. The system generates adynamic contact list based on the user calling attribute and the currentinformation.

Example Embodiments

One embodiment is a telephone or other device that generates a dynamiccontact list based on current information and user calling attributessuch as location, time of day, etc. The dynamic contact list can be asmaller list than a general contact list so that the user can quicklyaccess the most relevant contacts.

FIG. 1 is a block diagram of a communication system 10 in accordancewith one embodiment. System 10 includes a telephone 14 that is used by auser 22 and that is coupled to a network 16. Telephone 14 can be anytype of telephone that allows a calling party user to initiate atelephone call to a called party. Examples of telephone 14 include acellular telephone, a Voice Over Internet Protocol (“VOIP”) telephone, aPlain Old Telephone Service (“POTS”) telephone, etc. Telephone 14 mayinclude a keypad 17 and a display 18, or any other mechanism thatfunctions as a user interface. Telephone 14 further includes aprocessor, memory for storing instructions to be executed by theprocessor and for storing other data, and a global positioning system(“GPS”) for determining the geographic location of telephone 14.Telephone 14 further includes software/hardware for performing allneeded telecommunication functions, and software/hardware fordetermining a current time.

Telephone 14 is coupled to a network 16. Network 16 can be any type oftelecommunication network that allows a calling party at telephone 14 tobe connected to a called party at any location. Examples of network 16include a wireless cellular network, a wireless local area network, anInternet Protocol (“IP”) network, a Public Switched Telephone Network(“PSTN”), etc., or a combination of different types of networks. In oneembodiment, telephone 14 is coupled to network 16 through a wirelessconnection so that telephone 14 is mobile.

System 10 further includes a server 12 coupled to network 16. Server 12includes a processor and a memory that stores instructions that areexecuted by the processor, as well as other data. Server 12, throughnetwork 16, is coupled to telephone 14. Server 12 may also be directlycoupled to telephone 14 or coupled to telephone 14 using any othermethod. The functionality of server 12 may also be incorporated withintelephone 14. System 10 further includes a called party telephone 30that can be called by user 22 at telephone 14 when initiating atelephone call or other network connection to a called party.

In one embodiment, telephone 14 or server 12 determine “user callingattributes” of a user of telephone 14 and store the user callingattributes at server 12 and/or telephone 14. User calling attributes maybe generated and stored whenever user 22 initiates a call to a calledparty at telephone 14. One user calling attribute may be, for each callinitiated by a user of telephone 14, the geographic location oftelephone 14 when the call was initiated, and the corresponding calledparty. Another user calling attribute may be, for each call initiated bythe user of telephone 14, the time of day of the call and thecorresponding called party. Another user calling attribute may be thenumber of times a particular called party is called each hour, day,month, etc. Any possible combination of the above, or any otherattribute of a user's call may be considered “user calling attributes”in additional embodiments. The user calling attributes may be stored ina database coupled to server 12 or telephone 14.

The user calling attributes will typically reflect the calling routinesof user 22 at telephone 14. For example, a user may: (1) call her familyevery evening between 5 p.m. and 6 p.m. on every weekday if she is atwork; (2) call her work number or a conference server for a statusmeeting at the same time in the morning when traveling; (3) call anairline to check the status of a flight every Friday evening and Mondaymorning, and do this even more frequently when traveling away from herhome location; and (4) call her mother every Saturday morning and spouseevery evening during workdays. These are all calling routines of theuser and are reflected in the user calling attributes which track allcalls, or a predefined portion of the calls, based on location, time,calling parties, etc.

Telephone 14 can display a “full” overall contact list on display 18 tomake it easier for user 22 at telephone 14 to initiate a telephone call.The full contact list may be an alphabetical list of all contacts thathave been stored on telephone 14. Depending on the number of storedcontacts, this list can be very long (e.g., greater than 100 contacts)and therefore the user must frequently scroll through a large number ofcontacts to find the desired contact.

In contrast, in one embodiment, server 12 generates a “dynamic” contactlist 24 from the user calling attributes and sends it to telephone 14for displaying on display 18. Dynamic contact list 24 can be generatedand shown on display 18 when telephone 14 is activated by, for example,opening a flip phone, powering on the phone, waking the phone from sleepmode, automatically activating at a predetermined time, etc. It also maybe generated and displayed at other times besides at activation. Dynamiccontact list 24 in one embodiment is a subset of the full contact listand therefore is much smaller. For example, dynamic contact list 24shown in FIG. 1 includes five contacts. The smaller list makes it easierfor user 22 to select the desired contact. In one embodiment, user 22can initiate a telephone call to one of the contacts by selecting acontact and hitting a send button using keyboard 17. The content ofdynamic content list 24 in one embodiment is the result of system 10inferring what call a user is likely to make when they activatetelephone 14. This inference in one embodiment is based on the user'sprevious actions or routines.

In one embodiment, the user calling attributes are used to select thecontacts that populate dynamic contact list 24. In one embodiment, theuser calling attributes are a list of locations from the GPS that user22 initiates calls from, and for each location the calling parties thatare typically called. In this embodiment, system 10 will determine thecurrent location of telephone 14, and generate the list of contacts thatare typically called from that location. Dynamic contact list 24 willthen display the list of contacts. The contacts will be the most likelycontacts that the user would call from the current location, andtherefore the most relevant. The user can select a contact from dynamiccontact list 24, or can request the entire contact list if the desiredcalled party is not part of dynamic contact list 24.

In another embodiment, the user calling attributes will indicate who theuser typically calls at a particular time of day. For example, a usermay typically call her spouse at 6:00 p.m. on a weekday when work isover, or a user may typically call work contacts during working hours,and family and friends during non-working hours. In this embodiment,system 10 will determine the current time and generate dynamic contactlist 24 based on current time.

In another embodiment, the user calling attributes will indicate anorder that calling parties are typically called and system 10 willenable dynamic contact list 24 to be generated based on who user 22 hascalled recently. For example, a user may typically call their siblingsone after another, so after the first sibling is called, dynamic contactlist 24 may comprise the remaining siblings.

In another embodiment, the user calling attributes can be used togenerate a reminder to user 22 to initiate a call. For example, if theuser calling attributes indicate that the user always calls her spouseat 6 p.m., a reminder at 6 p.m. such as a vibration on telephone 14 canbe generated to remind user 22 to initiate the call to her spouse. Thecall may also be automatically initiated, or the potentially calledparty may be sent a reminder if the call is not initiated, via textmessaging, e-mail, or other methods.

FIG. 2 is a flow diagram of the functionality of communication system 10in accordance with one embodiment when generating a dynamic contactlist. In one embodiment, the functionality of the flow diagram of FIG. 2is implemented by software stored in memory or other computer readableor tangible medium, and executable by a processor. In other embodiments,the functionality can be performed by hardware, or any combination ofhardware and software.

At 102, user calling attributes are received. In one embodiment, theuser calling attributes are generated for each call initiated ontelephone 14 and are stored on server 12 in a database.

At 104, the current information of telephone 14 is determined. Thecurrent information can be determined when telephone 14 is activated orat any other time. The current information may include the geographiclocation of telephone 14, the time of day, the date, the identity ofuser 22, etc.

At 106, dynamic contact list 24 is generated based on the user callingattributes and the current information. Dynamic contact list 24 isdisplayed to user 22 who can then select one of the contacts to initiatea telephone call. In one embodiment, the user calling attributes arestored in a database and are queried based on the current information,and the most likely X number of contacts is selected to populate dynamiccontact list 24, where X is a predetermined number.

In one embodiment, the storing of user calling attributes and thegeneration of dynamic contact list 24 is provided by server 12, whichcan be controlled by a service provider that can sell the dynamiccontact list generation as a service to a user of telephone 14. In otherembodiments, generation of dynamic contact list 24 can occur ontelephone 14 or in some other location of system 10.

As disclosed, embodiments of the present invention generate a dynamiccontact list that includes the most relevant contacts for a user oftelephone 14. As a result, a user at telephone 14 can easily select thedesired contact and initiate a telephone call.

Several embodiments are specifically illustrated and/or describedherein. However, it will be appreciated that modifications andvariations of are covered by the above teachings and within the purviewof the appended claims without departing from the spirit and intendedscope of the invention.

For example, although telephone 14 includes a display 18 for displayingdynamic contact list 24, a telephone without a display can also be usedby, for example, providing an audio list of contacts and allowing userinteraction through an Interactive Voice Response system. Further, thedynamic contact list can be used with a device other than a telephone.For example, the dynamic contact list can be a list of contacts for aninstant messaging system and the user calling attributes would beinstant messaging attributes.

1. A method comprising: receiving at least one user calling attribute;determining a current information of a telephone; and generating adynamic contact list based on the user calling attribute and the currentinformation.
 2. The method of claim 1, further comprising: displayingthe dynamic contact list on the telephone.
 3. The method of claim 1,wherein the current information comprises a location of the telephone.4. The method of claim 1, wherein the determining the currentinformation occurs upon an activation of the telephone.
 5. The method ofclaim 1, wherein the dynamic contact list is a subset of an overallcontact list.
 6. The method of claim 1, wherein the generating thedynamic contact list comprises querying a database on a server that iscoupled to the telephone.
 7. The method of claim 1, wherein the usercalling attribute comprises a location of a call and a correspondingcalled party.
 8. The method of claim 1, wherein the user callingattribute comprises a time of a call and a corresponding called party.9. The method of claim 1, further comprising generating a reminder onthe telephone based on the user calling attribute and the currentinformation.
 10. An apparatus comprising: a database that stores usercalling attributes received from a telephone; and a processor coupled tothe database, wherein the processor receives a current information ofthe telephone and generates a dynamic contact list based on the currentinformation and the user calling attributes.
 11. The apparatus of claim10, wherein the current information comprises a location of thetelephone.
 12. The apparatus of claim 10, wherein the currentinformation of the telephone is generated upon an activation of thetelephone.
 13. The apparatus of claim 10, wherein the dynamic contactlist is a subset of an overall contact list of the telephone.
 14. Theapparatus of claim 10, wherein the dynamic contact list is generated byquerying the database.
 15. The apparatus of claim 10, wherein the usercalling attributes comprise a location of a call and a correspondingcalled party.
 16. The apparatus of claim 10, wherein the user callingattributes comprise a time of a call and a corresponding called party.17. Logic encoded in one or more tangible media for execution and whenexecuted operable to: receiving at least one user calling attribute;determining a current information of a telephone; and generating adynamic contact list based on the user calling attribute and the currentinformation.
 18. The logic of claim 17, wherein the current informationcomprises a location of the telephone.
 19. The logic of claim 17,wherein the user calling attribute comprises a location of a call and acorresponding called party.
 20. The logic of claim 17, wherein the usercalling attribute comprises a time of a call and a corresponding calledparty.